package com.atguigu.datasource;

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * projectName: day04_jdbc
 *
 * @author: 赵伟风
 * time: 2021/11/26 17:09
 * description:基于Druid连接池进行连接的获取和回收
 */
public class JdbcPool {

    private static DruidDataSource dataSource = new DruidDataSource();

    static {

        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///test1");
        dataSource.setUsername("root");
        dataSource.setPassword("root");

        //3.设置可选属性，连接池的初始化容量  最大容量  等待时间【到达最大数量】
        dataSource.setInitialSize(5);
        dataSource.setMaxActive(10);
        dataSource.setMaxWait(1000);
    }


    /**
     * 获取连接连接的方法
     * @return 返回连接池中的连接
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {

        return dataSource.getConnection();
    }


    /**
     * 回收连接
     * @param connection 需要回收的连接！ 注意，必须是连接池取出的连接
     * @throws SQLException
     */
    public static void  close(Connection connection) throws SQLException{

        if (connection != null) {
            connection.close();
        }

    }
}
